概述
設計審查(Design Review)和威脅模型分析(threat modeling)是確保安全的開發生命週期的關鍵組成部分。
通過設計審查,安全團隊可以根據安全最佳實踐和設計模式來審查應用程式的規範和設計。
結合威脅模型分析,開發團隊將能夠確定應用程式需求或安全控制設計。
通過儘早使AppSec參與進來,安全性將成為整個開發生命週期中的考慮因素;
減少了在實施和測試階段會發生的安全性問題。
要求設計審查
根據情況,可以在開發生命週期的任何時候進行設計審查。
理想情況下,在軟體開發的設計階段發生針對應用程式或服務的任何程式碼之前,都要進行設計審查。
這是調整應用程式設計的最佳時間。
一旦應用程式具有設計規範,並且開發團隊已經收集了對應用程式的適當要求,則應該進行設計審查。
如果AppSec對應用程式不熟悉,則也可以在安全檢查之前執行設計檢查。
當請求設計審查時,請聯繫應用程式安全(AppSec)安排會議和審查範圍。
要求
當請求設計審查時,開發團隊將需要提供與新應用程式相關的文檔和圖表。
以下是不完整的文檔列表,可幫助順利進行設計審查。
儘管它們不是設計審查的硬性要求,但沒有開發團隊提供的材料,AppSec無法保證審查的質量。
設計規範
提供應用程式的設計規範,使AppSec可以查看應用程式的計劃設計。
AppSec將就與設計驗證,存取控制控制和其他安全控制有關的各種安全要求提供諮詢。
資料分類(Data Classifications)
應用程式的風險千變萬化,並且幾乎總是取決於應用程式處理和儲存的資料類型。
提供應用程式使用的資料分類將為應用程式所需的安全要求提供系統關聯。
系統架構圖(Architecture Diagrams)
詳細說明應用程式主要組件及其相互作用方式的系統架構圖(Architecture Diagrams),對於威脅模型分析和設計審查非常有用。
這通常是描述應用程式組件如何整合和一起運行的圖。
資料流程圖(Data Flow Diagram, DFD)
資料流程圖提供了哪些資料流入和流出應用程式的每個部分。
這樣可以清楚地了解哪些組件與每種資料類別進行互動,從而為AppSec提供應用程式的整體視圖,從而建立有效的威脅模型分析。
利害關係人
應用程式不是憑空存在的,因此,應用程式將整合或利用額外的團隊和第三方服務。
提供這些團隊和服務的列表將使我們能夠評估應用程式帶來的風險。
方法
由於理想情況下,設計審查是在軟體開發生命週期的早期進行的,因此AppSec的設計審查方法是高級的,並且適合於任何應用程式。
在設計審查中,我們專注於兩個主要組成部分,以確保評審為開發過程帶來價值。
安全設計諮詢
在設計應用程式時,開發團隊多次意識到需要與安全性相關的控件-例如基於角色的存取控制或身份驗證。
雖然在線上有很多資源,但可能很少有資源可以適合每一次的需求。
因此,在設計審查期間,我們提供有關安全控制設計的建議和諮詢。
威脅模型分析
威脅模型分析是設計審查中的主要工作:
- 您擔心的問題的描述/設計/模型
- 隨著威脅形勢的變化,將來可以檢查或挑戰的假設列表
- 對系統的潛在威脅列表
- 針對每種威脅要採取的措施的清單
- 一種驗證模型和威脅以及驗證所採取措施是否成功的方法
設計審查會議產出
以上內容都在設計審查會議期間進行了討論,並在會議期間作為工作討論。
會議後要能夠提供其他設計建議以及用於緩解這種情況的控制措施清單。